Existem uma infinidade de pacotes disponíveis no Python.
Observação: Utilizamos notações do tipo biblioteca.funcao() para evitar conflitos de pacotes, ambiguidades de funções e ter mais clareza. No R: dplyr::funcao().
É um pacote desenvolvido para computação científica;
Muito útil para análises de dados, no qual possui várias funções que permitem manipular e descrever dados;
Funções matemáticas de alto desempenho.
Uso de funções do NumPy
#---------------------import numpy #---------------------# criando a lista xx = [1, 2, 3, 4, 5]x# acessando os elementos do conjunto x[0]x[4]# soma do conjunto xnumpy.sum(x)# media do conjunto xnumpy.sum(x)/len(x)numpy.mean(x)# mediananumpy.median(x)# outras funcoesnumpy.exp(x)numpy.sin(x)
Listas e Arrays
As listas permitem armazenar diferentes tipos de dados e possui métodos básicos para manipulação;
Os arrays armazenam elementos do mesmo tipo e permitem operações de vetor e matriz de maneira mais eficiente.
#---------------------import numpy as np#---------------------# criando o conjunto de dados xx = [1, 2, 3, 4, 5]y = [10, 11, 12, 13, 14]z = [10, 12, "bruno", 12]# visualizandoxyz# concatenando x e yx + ylen(x+y)#---------------------# soma de x + y## definir como arrayx = np.array(x)y = np.array(y)## somax+ylen(x+y)## inserindo elementos em x e yx = np.append(x, 8)y = np.append(y, 10)# soma de x e yx+y# produto de x * yx*y
Dados pseudo-aleatórios
Podemos utilizar a biblioteca para gerar dados pseudo-aleatórios provenientes de distribuições como:
Normal;
Uniforme;
Beta;
#---------------------import numpy as np#---------------------# fixando a sementenp.random.seed(1)# distribuicao normalhelp(np.random.normal)# gerando dados normaismu =10sigma =2s = np.random.normal(loc = mu, scale = sigma, size =1000)# estatisticas descritivasnp.mean(s) np.var(s)# distribuicao betas1 = np.random.beta(a =1, b =4, size =200)s1# estatisticas descritivasnp.mean(s1)np.std(s1)
#---------------------# modulo statisticsimport statistics #---------------------# criando a lista com os dadosdados = [1, 2, 2, 3, 4, 5]# estatisticas descritivasstatistics.median(dados)statistics.variance(dados)statistics.stdev(dados)# correlacao entre x1 e x2x1 = [10,12,13,14,15]x2 = [11,12,13,14,15]statistics.correlation(x1,x2)
Pandas
Está entre as bibliotecas mais utilizadas no Python.
Sua utilidade no tratamento de dados é enorme, pois com ela você pode lidar tranquilamente com:
Organização, manipulação e filtragem de dados;
Criação e leitura de DataFrames (df);
Agrupamento, resumo e limpeza de dados.
Criação de um df
#------------------# dataframes com o pandas#------------------import pandas as pd# criando um conjunto de dadosdados = {'Animal': ['Animal 1', 'Animal 2', 'Animal 3', 'Animal 4'],'Peso': [480.20, 500.00, 520.40, 580.58],'Raca': ['Jersey', 'Holandes', 'Jersey', 'Holandes']}# data frame com a pandasdados = pd.DataFrame(dados)dados# tipos das variaveisdados.dtypes# describedados.describe()# acessando variaveisdados['Peso'].mean()dados[['Peso','Raca']]# medias do peso por racadados.groupby(['Raca']).mean('Peso')# usando a aggregatedados.groupby('Raca')['Peso'].agg(['mean', 'max', 'var'])# inserindo uma variaveldados['Tipo'] = ['primípara','primípara','multípara','primípara']dados
Importação
Exemplo: Dados de nascimento registrados na Santa Casa de Lavras (.csv e .xlsx).
#------------------# dataframes com o pandas#------------------import pandas as pd# importando no formato csvdados1 = pd.read_csv("dados_lavras.csv")dados1# importando no formato xlsxdados1 = pd.read_excel("dados_excel_partos.xlsx")dados1# resumodados1.describe()
Matplotlib
Também é uma biblioteca muito utilizada, destinada a construção de gráficos. Veja a documentação;
Similar à biblioteca ggplot2.
Dispersão
#------------------# graficos de dispersao#------------------import pandas as pdimport matplotlib.pyplot as plt# importando no formato xlsxdados1 = pd.read_excel("C:/Users/luizo/OneDrive/Área de Trabalho/Aula python/dados_excel_partos.xlsx",decimal=",")dados1# resumodados1['PESO'].describe()# dispersao entre a idade da mae e o pesoplt.figure(figsize=(10, 6)) plt.scatter(dados1['IDADEMAE'], dados1['PESO'], color='steelblue',s =1)plt.title('Gráfico de dispersão', fontsize=11)plt.xlabel('Idade da mãe (anos)', fontsize=11)plt.ylabel('Peso (kg)', fontsize=11)plt.ylim(0,6)plt.xlim(0,55)
Regressão
#------------------# regressoes#------------------import pandas as pdimport matplotlib.pyplot as pltimport statsmodels.api as smfrom statsmodels.formula.api import ols# importando no formato xlsxdados1 = pd.read_excel("C:/Users/luizo/OneDrive/Área de Trabalho/Aula python/dados_excel_partos.xlsx",decimal=",")dados1# resumodados1['PESO'].describe()# dispersao entre a idade da mae e o pesoplt.figure(figsize=(10, 6)) plt.scatter(dados1['IDADEMAE'], dados1['PESO'], color='steelblue',s =1)plt.title('Gráfico de dispersão', fontsize=11)plt.xlabel('Idade da mãe (anos)', fontsize=11)plt.ylabel('Peso (kg)', fontsize=1)plt.ylim(0,6)plt.xlim(0,55)# modelo de regressãomodelo = ols("PESO ~ IDADEMAE", data=dados1)help(ols)resumo = modelo.fit()resumo.summary()resumo.aicresumo.rsquaredresumo.params# predicaopredicao = resumo.predict(dados1)# histogramaplt.figure(figsize=(8, 6))plt.hist(predicao, bins=10, color='red', edgecolor='black')plt.title('Histograma do valores preditos', fontsize=11)plt.xlabel('Peso', fontsize=11)plt.ylabel('Frequência', fontsize=11)
Comentários
Programação é prática;
Há funções que podem ser mais simples e práticas o R;